package com.qd.common.panda.domain.entity.order;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 〈一句话功能简述〉<br>
 *
 * @author sjk
 * @create 2022-10-28 11:20
 * @since 1.0.0
 */
@Data
@Accessors(chain = true)
@ToString
public class UserStrokeOrderDisplayDTO {
    @ExcelIgnore
    @JsonIgnore
    private static final String EXCEL_TITLE = "用户订单";
    /**
     * 主键
     */
    @ExcelProperty(value = { EXCEL_TITLE, "订单ID"})
    private String orderId;
    /**
     * 开始时间
     */
    @ExcelProperty(value = {EXCEL_TITLE,"开始时间"})
    private LocalDateTime startTime;
    /**
     * 结束时间
     */
    @ExcelProperty(value = {EXCEL_TITLE,"结束时间"})
    private LocalDateTime endTime;
    /**
     * 订单金额
     */
    @ExcelIgnore
    private BigDecimal orderAmount;
    /**
     * 订单金额显示
     */
    @ExcelProperty(value = {EXCEL_TITLE,"订单金额"})
    private String orderAmountDisplay;
    /**
     * 实际支付金额
     */
    @ExcelIgnore
    private BigDecimal payAmount;
    /**
     * 实际支付金额显示
     */
    @ExcelProperty(value = {EXCEL_TITLE,"实际支付金额"})
    private String payAmountDisplay;
    /**
     * 优惠金额
     */
    @ExcelIgnore
    private BigDecimal discountAmount;
    /**
     * 优惠金额显示
     */
    @ExcelProperty(value = {EXCEL_TITLE,"优惠金额"})
    private String discountAmountDisplay;
    /**
     * 优惠金额
     */
    @ExcelIgnore
    private BigDecimal serviceCharge;
    /**
     * 退款金额
     */
    @ExcelIgnore
    private BigDecimal refundAmount;
    /**
     * 退款金额显示
     */
    @ExcelProperty(value = {EXCEL_TITLE,"退款金额"})
    private String refundAmountDisplay;
    /**
     * 服务费显示
     */
    @ExcelProperty(value = {EXCEL_TITLE,"服务费"})
    private String serviceChargeDisplay;
    /**
     * 支付状态
     */
    @ExcelIgnore
    private Integer payStatus;
    /**
     * 支付状态显示
     */
    @ExcelProperty(value = {EXCEL_TITLE,"支付状态"})
    private String payStatusDisplay;
    /**
     * 停车场ID
     */
    @ExcelIgnore
    private String parkId;
    /**
     * 用户ID
     */
    @ExcelProperty(value = {EXCEL_TITLE,"用户ID"})
    private String userId;
    /**
     * 手机号
     */
    @ExcelProperty(value = {EXCEL_TITLE,"手机号"})
    private String mobile;
    /**
     * 车牌
     */
    @ExcelProperty(value = {EXCEL_TITLE,"车牌"})
    private String plateNumber;
    /**
     * 行程类型:0停车1充电
     */
    @ExcelIgnore
    private Integer tripType;
    /**
     * 行程类型显示
     */
    @ExcelProperty(value = {EXCEL_TITLE,"行程类型"})
    private String tripTypeDisplay;
    /**
     * 停车场名称
     */
    @ExcelProperty(value = {EXCEL_TITLE,"停车场名称"})
    private String parkName;
    /**
     * 推广码
     */
    @ExcelIgnore
    private String promotionCode;
    /**
     * 推广码显示
     */
    @ExcelProperty(value = {EXCEL_TITLE,"推广码"})
    private String promotionCodeDisplay;
    /**
     * 加油站公司名称
     */
    @ExcelIgnore
    private String gasStationCompanyId;
    /**
     * 加油站公司名称显示
     */
    @ExcelIgnore
    private String gasStationCompanyName;
    /**
     * 油站类型
     */
    @ExcelIgnore
    private String stationType;
    /**
     * 油站类型显示
     */
    @ExcelIgnore
    private String stationTypeDisplay;

    public void freeData() {
        this.orderId = null;
        this.startTime = null;
        this.endTime = null;
        this.orderAmount = null;
        this.orderAmountDisplay = null;
        this.payAmount = null;
        this.payAmountDisplay = null;
        this.discountAmount = null;
        this.discountAmountDisplay = null;
        this.payStatus = null;
        this.payStatusDisplay = null;
        this.parkId = null;
        this.parkName = null;
        this.plateNumber = null;
        this.userId = null;
        this.tripType = null;
        this.tripTypeDisplay = null;
        this.promotionCode = null;
        this.mobile = null;
        this.promotionCodeDisplay = null;
        this.serviceCharge = null;
        this.serviceChargeDisplay = null;
        this.gasStationCompanyId = null;
        this.gasStationCompanyName = null;
        this.stationType = null;
        this.stationTypeDisplay = null;
        this.refundAmount = null;
        this.refundAmountDisplay = null;
    }

}